// /​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​
//  * 网盘客户端
//  ​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​/

#include "client_loop.h"

#include "login_register_client.h"

// ​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​
//  * 主函数 - 程序入口
//  * 流程：
//  * 1. 参数检查
//  * 2. 初始化客户端
//  * 3. 运行主循环
//  * 4. 清理资源
//  ​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​*​**​/
int main(int argc, char *argv[])
{
    if (argc != 3)
    {
        printf("Usage: %s <IP> <PORT>\n", argv[0]);
        return 1;
    }

    ClientContext ctx; // 这里的socket用于登陆注册阶段，登录成功后关闭
    if (init_client_noblock(&ctx, argv[1], atoi(argv[2])) != 0)
    {
        printf("client connect error\n");
        return 1;
    }
    UserLogInfo user;
    int ret = display_menu(&ctx, &user);
    if (ret == STATE_AWAIT_RESP)
    {
        int ret = run_client_loop(&ctx, argv[1], atoi(argv[2]));
        close(ctx.sockfd);
        return ret;
    }
    else
    {
        return 0;
    }
}